package gates;

import java.awt.Graphics;


import master.*;

/**
 * An interface for the Quantum Gate :)
 *
 * @author Matthew
 * 
 * 01/03/13 Oliver: changed the actOnReg Method to allow specific bit operations 
 * 					also added the multiply method that can be implemented by complex gates to combine 2 smaller gates
 * 					this will break a lot of gates or they will have to be modified
 *
 */


public interface QuantumGate {

	public QuantumRegister actOnReg(QuantumRegister register);
	
	public QuantumGate multiply(QuantumGate gate);
	
	public boolean checkDim(QuantumRegister register)throws IllegalArgumentException;
	
	public void draw(Graphics g, int x, int y , float scale);
	
	
	
}
